$(function(){
    $("#update_responsibleUserId").html($("#taskResponsibleUserId").html());
    $("#update_categoryId").html($("#taskCategoryId").html());
    $("#update_task_button").click(function(){updateTask()});
    $("#update_task_cancel_link").click(function(a){a.preventDefault();$("#updateTask").hide()})
});
var _responsibleUserId="";
var _isTaskPage=true;
var _isShowAllInfo=false;
var params={};
params.operation="list";
params.offset=-1;
params.status=0;
function taskInit(){
    $("div.tasklist").hide();
    $("ul.tasks li").remove();
    $("#searchmore").hide();
    $("#updateTask").hide()
}
function loadTasks(){
    if(_isShowAllInfo){$("#tasks_none").hide();if(params.offset==0){$("#tasks_loading").show()}}
    else{taskInit()}
    params.responsibleUserId=_responsibleUserId;
    params.referenceId=$("#referenceId").val();
    params.referenceType=$("#referenceType").val();
    $.ajax({
        url:contextPath+"/task?random="+Math.random(),
        type:"GET",
        data:params,
        dataType:"json",
        timeout:60000,
        error:function(){},
        success:function(a){
            $("#tasks_loading").hide();
            $("#searchmore").parent().removeClass("busy");
            if(a.error=="2"){
                $.bootstrapGrowl("登陆超时，请重新登陆");
                window.location=contextPath+"/signin";return
            }
            if(a.error=="1"){
                $.bootstrapGrowl("加载任务失败，请稍后再试");return
            }
            $.each(a.tasks,function(b,c){showTask(c)});
            if(_isShowAllInfo){
                if(a.tasks.length==0&&params.offset==0){
                    $("#tasks_none").show()
                }
                if(a.tasks.length==0||a.tasks.length<pageSize){
                    $("#searchmore").hide()
                }
                else{
                    $("#searchmore").show()
                }
            }
        }
    }
    )
}
function showTask(k){
    var f;
    if(k.DueDate==""){
        f=$("#laterTasks")
    }else{
        var g=moment({hour:0,minute:0,seconds:0});
        var a=moment(k.DueDate.split(" ")[0],"YYYY-MM-DD");
        var j=a.diff(g,"days");
        if(j<0){
            f=$("#overdueTasks")
        }else{
            if(j==0){
                f=$("#todayTasks")
            }else{
                if(j==1){
                    f=$("#tomorrowTasks")
                }else{
                    var b=g.day();
                    if(b>0){
                        b=7-b
                    }
                    if(j<=b){
                        f=$("#thisWeekTasks")
                    }else{
                        if(j<=(b+7)){
                            f=$("#nextWeekTasks")
                        }else{
                            f=$("#laterTasks")
                        }
                    }
                }
            }
        }
    }
    var i=$("<li><div class='item'><div class='operation'><a href='#' title='删除任务' class='deletetask'><i class='fa fa-trash-o'></i></a><a title='修改任务' href='#' class='modifytask'>修改</a></div><span class='checkbox' v='0'></span><span class='taskcategory'></span><span class='tasktitle'></span></div></li>");
    if(k.FinishFlag=="1"){
        i.find("div.item").addClass("checked");
        i.find("span.checkbox").attr("v","1")
    }
    var d=getArrayObject(allTaskCategory,k.CategoryId);
    if(d){
        i.find("span.taskcategory").text(d.name).css("background","#"+d.color).show()
    }
    var h=k.TaskTitle;
    if(_isShowAllInfo&&k.DueDate&&k.DueDate.length>0){
        h=h+" ( "+moment(k.DueDate).calendar()+" ) "
    }
    if(k.ResponsibleUserId!=userId){
        var c=getArrayObject(allUsers,k.ResponsibleUserId);
        if(c){
            h=h+" [负责人："+c.name+"] "
        }
    }
    i.find("span.tasktitle").text(h);
    if(_isShowAllInfo&&k.ReferenceTitle&&k.ReferenceTitle.length>0){
        var e=$("<a ></a>").attr("href",contextPath+k.ReferenceUrl).text(k.ReferenceTitle);
        i.find("span.tasktitle").append(" (Re：").append(e).append(" )")
    }
    i.find("span.checkbox").click(function(){
        var n=$(this);
        var o;
        var m=$(this).attr("v");
        if(m=="1"){
            o=0
        }else{
            o=1
        }
        i.addClass("busy");
        var l={};
        l.updateType=o;
        $.ajax({
            url:contextPath+"/task/"+k.TaskId+"/update?random="+Math.random(),
            type:"GET",
            data:l,
            dataType:"json",
            timeout:60000,
            error:function(){},
            success:function(p){
                i.removeClass("busy");
                if(p.error=="1"||p.result!="1"){
                    $.bootstrapGrowl("任务删除失败，请稍后再试");
                    return
                }
                if(m=="1"){
                    n.parent().removeClass("checked");
                    n.attr("v","0")
                }else{
                    n.parent().addClass("checked");
                    n.attr("v","1")
                }
            }
        })
    });
    i.find("a.deletetask").click(function(l){
        l.preventDefault();
        if(!confirm("确认要删除该任务吗？")){
            return
        }
        i.addClass("busy");
        $.ajax({
            url:contextPath+"/task/"+k.TaskId+"/delete?random="+Math.random(),
            type:"GET",
            dataType:"json",
            timeout:60000,
            error:function(){},
            success:function(m){
                if(m.error=="2"){
                    $.bootstrapGrowl("登陆超时，请重新登陆");
                    window.location=contextPath+"/signin";
                    return
                }
                if(m.error=="1"){
                    i.removeClass("busy");
                    $.bootstrapGrowl("任务删除失败，请稍后再试");
                    return
                }
                if(m.result=="1"){
                    i.fadeOut(200,function(){
                        $(this).remove()
                    });
                    return
                }
                $.bootstrapGrowl("任务删除失败，请稍后再试");
                i.removeClass("busy")
            }
        })
    });
    i.find("a.modifytask").click(function(m){
        m.preventDefault();
        $("#update_taskId").val(k.TaskId);
        $("#update_taskTitle").val(k.TaskTitle);
        $("#update_dueDate").val(k.DueDate);
        $("#update_dueDate").data(k.DueDate);
        $("#update_responsibleUserId").val(k.ResponsibleUserId);
        $("#update_categoryId").val(k.CategoryId);
        var o=k.TaskVisible=="1"?true:false;
        $("#update_taskVisible").prop("checked",o);
        var n=$(this).offset().top+30;
        var l=$(this).offset().left;
        $("#updateTask").css({opacity:"1",top:n,left:l}).show()
    });
    f.show();i.appendTo(f.find("ul"))
}
function updateTask(){
    var c=$("#update_taskTitle").val();
    if(c==""){
        return
    }
    $("#update_task_button").parent().addClass("busy");
    var a={};
    a.TaskTitle=c;
    a.DueDate=$("#update_dueDate").val();
    a.ResponsibleUserId=$("#update_responsibleUserId").val();
    a.CategoryId=$("#update_categoryId").val();
    a.CategoryName=$("#update_categoryId option:selected").text();
    var b=$("#update_taskVisible").prop("checked")?"1":"0";
    a.TaskVisible=b;
    a.updateType="3";
    $.ajax({
        url:contextPath+"/task/"+$("#update_taskId").val()+"/update?random="+Math.random(),
        type:"GET",
        data:a,
        dataType:"json",
        timeout:60000,
        error:function(){},
        success:function(d){
            $("#update_task_button").parent().removeClass("busy");
            $("#updateTask").hide();
            if(d.error=="2"){
                $.bootstrapGrowl("登陆超时，请重新登陆");
                window.location=contextPath+"/signin";return
            }
            if(d.error=="1"){
                $.bootstrapGrowl("任务更新失败，请稍后再试");
                return
            }
            taskInit();
            loadTasks()
        }
    })
};